package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 消息通知对象 sys_message
 * 
 * @author ruoyi
 */
public class SysMessage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 消息ID */
    private Long messageId;

    /** 消息标题 */
    @Excel(name = "消息标题")
    private String title;

    /** 消息内容 */
    @Excel(name = "消息内容")
    private String content;

    /** 消息类型（1系统通知 2余额提醒 3退住通知） */
    @Excel(name = "消息类型", readConverterExp = "1=系统通知,2=余额提醒,3=退住通知")
    private String messageType;

    /** 接收人ID */
    @Excel(name = "接收人ID")
    private Long receiverId;

    /** 接收人类型（1老人 2家属） */
    @Excel(name = "接收人类型", readConverterExp = "1=老人,2=家属")
    private String receiverType;

    /** 状态（0未读 1已读） */
    @Excel(name = "状态", readConverterExp = "0=未读,1=已读")
    private String status;

    /** 阅读时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "阅读时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date readTime;

    /** 发送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发送时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;

    /** 是否推送（0未推送 1已推送） */
    @Excel(name = "是否推送", readConverterExp = "0=未推送,1=已推送")
    private String isPush;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 扩展字段：接收人姓名 */
    private String receiverName;

    public Long getMessageId() {
        return messageId;
    }

    public void setMessageId(Long messageId) {
        this.messageId = messageId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getMessageType() {
        return messageType;
    }

    public void setMessageType(String messageType) {
        this.messageType = messageType;
    }

    public Long getReceiverId() {
        return receiverId;
    }

    public void setReceiverId(Long receiverId) {
        this.receiverId = receiverId;
    }

    public String getReceiverType() {
        return receiverType;
    }

    public void setReceiverType(String receiverType) {
        this.receiverType = receiverType;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getReadTime() {
        return readTime;
    }

    public void setReadTime(Date readTime) {
        this.readTime = readTime;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

    public String getIsPush() {
        return isPush;
    }

    public void setIsPush(String isPush) {
        this.isPush = isPush;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getReceiverName() {
        return receiverName;
    }

    public void setReceiverName(String receiverName) {
        this.receiverName = receiverName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("messageId", getMessageId())
            .append("title", getTitle())
            .append("content", getContent())
            .append("messageType", getMessageType())
            .append("receiverId", getReceiverId())
            .append("receiverType", getReceiverType())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("readTime", getReadTime())
            .append("sendTime", getSendTime())
            .append("isPush", getIsPush())
            .append("delFlag", getDelFlag())
            .toString();
    }
} 